<?xml version="1.0"?>
<doc>
    <assembly>
        <name>TVA.Security</name>
    </assembly>
    <members>
        <member name="T:TVA.Security.SecurityPrincipal">
            <summary>
            A class that implements <see cref="T:System.Security.Principal.IPrincipal"/> interface to facilitate custom role-based security.
            </summary>
            <seealso cref="T:TVA.Security.SecurityIdentity"/>
            <seealso cref="T:TVA.Security.ISecurityProvider"/>
        </member>
        <member name="M:TVA.Security.SecurityPrincipal.#ctor(TVA.Security.SecurityIdentity)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.SecurityPrincipal"/> class.
            </summary>
            <param name="identity">An <see cref="T:TVA.Security.SecurityIdentity"/> object.</param>
            <exception cref="T:System.ArgumentNullException">Value specified for <paramref name="identity"/> is null.</exception>
        </member>
        <member name="M:TVA.Security.SecurityPrincipal.IsInRole(System.String)">
            <summary>
            Determines whether the user is a member of either of the specified <paramref name="roles"/>.
            </summary>
            <param name="roles">Comma seperated list of roles to check.</param>
            <returns>true if the user is a member of either of the specified <paramref name="roles"/>, otherwise false.</returns>
        </member>
        <member name="P:TVA.Security.SecurityPrincipal.Identity">
            <summary>
            Gets the <see cref="T:TVA.Security.SecurityIdentity"/> object of the user.
            </summary>
        </member>
        <member name="T:TVA.Security.ISecurityProvider">
            <summary>
            Defines a provider of role-based security in applications.
            </summary>
        </member>
        <member name="M:TVA.Security.ISecurityProvider.RefreshData">
            <summary>
            Refreshes the <see cref="P:TVA.Security.ISecurityProvider.UserData"/>.
            </summary>
            <returns>true if <see cref="P:TVA.Security.ISecurityProvider.UserData"/> is refreshed, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.ISecurityProvider.Authenticate(System.String)">
            <summary>
            Authenticates the user.
            </summary>
            <param name="password">Password to be used for authentication.</param>
            <returns>true if the user is authenticated, otherwise false.</returns>
        </member>
        <member name="P:TVA.Security.ISecurityProvider.ApplicationName">
            <summary>
            Gets or sets the name of the application being secured as defined in the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.ISecurityProvider.ConnectionString">
            <summary>
            Gets or sets the connection string to be used for connection to the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.ISecurityProvider.UserData">
            <summary>
            Gets the <see cref="P:TVA.Security.ISecurityProvider.UserData"/> object containing information about the user.
            </summary>
        </member>
        <member name="T:TVA.Security.SqlSecurityProvider">
            <summary>
            Represents an <see cref="T:TVA.Security.ISecurityProvider"/> that uses SQL Server for its backend datastore and authenticates 
            internal users against the Active Directory and external users against the SQL Server backend datastore.
            </summary>
            <example>
            Required config file entries:
            <code>
            <![CDATA[
            <?xml version="1.0"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="TVA.Configuration.CategorizedSettingsSection, TVA.Core" />
              </configSections>
              <categorizedSettings>
                <securityProvider>
                  <add name="ApplicationName" value="SEC_APP" description="Name of the application being secured as defined in the backend security datastore."
                    encrypted="false" />
                  <add name="ConnectionString" value="Primary={Server=DB1;Database=AppSec;Trusted_Connection=True};Backup={Server=DB2;Database=AppSec;Trusted_Connection=True}"
                    description="Connection string to be used for connection to the backend security datastore."
                    encrypted="false" />
                  <add name="ProviderType" value="TVA.Security.SqlSecurityProvider, TVA.Security"
                    description="The type to be used for enforcing security." encrypted="false" />
                  <add name="IncludedResources" value="*=*" description="Semicolon delimited list of resources to be secured along with role names."
                    encrypted="false" />
                  <add name="ExcludedResources" value="" description="Semicolon delimited list of resources to be excluded from being secured."
                    encrypted="false" />
                </securityProvider>
                <activeDirectory>
                  <add name="PrivilegedDomain" value="" description="Domain of privileged domain user account."
                    encrypted="false" />
                  <add name="PrivilegedUserName" value="" description="Username of privileged domain user account."
                    encrypted="false" />
                  <add name="PrivilegedPassword" value="" description="Password of privileged domain user account."
                    encrypted="true" />
                </activeDirectory>
              </categorizedSettings>
            </configuration>
            ]]>
            </code>
            </example>
        </member>
        <member name="T:TVA.Security.LdapSecurityProvider">
            <summary>
            Represents an <see cref="T:TVA.Security.ISecurityProvider"/> that uses Active Directory for its backend datastore and credential authentication.
            </summary>
            <example>
            Required config file entries:
            <code>
            <![CDATA[
            <?xml version="1.0"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="TVA.Configuration.CategorizedSettingsSection, TVA.Core" />
              </configSections>
              <categorizedSettings>
                <securityProvider>
                  <add name="ApplicationName" value="" description="Name of the application being secured as defined in the backend security datastore."
                    encrypted="false" />
                  <add name="ConnectionString" value="LDAP://DC=COMPANY,DC=COM"
                    description="Connection string to be used for connection to the backend security datastore."
                    encrypted="false" />
                  <add name="ProviderType" value="TVA.Security.LdapSecurityProvider, TVA.Security"
                    description="The type to be used for enforcing security." encrypted="false" />
                  <add name="IncludedResources" value="*=*" description="Semicolon delimited list of resources to be secured along with role names."
                    encrypted="false" />
                  <add name="ExcludedResources" value="" description="Semicolon delimited list of resources to be excluded from being secured."
                    encrypted="false" />
                </securityProvider>
                <activeDirectory>
                  <add name="PrivilegedDomain" value="" description="Domain of privileged domain user account."
                    encrypted="false" />
                  <add name="PrivilegedUserName" value="" description="Username of privileged domain user account."
                    encrypted="false" />
                  <add name="PrivilegedPassword" value="" description="Password of privileged domain user account."
                    encrypted="true" />
                </activeDirectory>
              </categorizedSettings>
            </configuration>
            ]]>
            </code>
            </example>
        </member>
        <member name="T:TVA.Security.SecurityProviderBase">
            <summary>
            Base class for a provider of role-based security in applications.
            </summary>
            <seealso cref="T:TVA.Security.SecurityIdentity"/>
            <seealso cref="T:TVA.Security.SecurityPrincipal"/>
            <example>
            This examples shows how to extend <see cref="T:TVA.Security.SecurityProviderBase"/> to use a flat-file for the security datastore:
            <code>
            using System.Data;
            using System.IO;
            using TVA;
            using TVA.Data;
            using TVA.IO;
            using TVA.Security;
            
            namespace CustomSecurity
            {
                public class FlatFileSecurityProvider : SecurityProviderBase
                {
                    private const int LeastPrivilegedLevel = 5;
            
                    public FlatFileSecurityProvider(string username)
                        : base(username)
                    {
                    }
            
                    public override bool RefreshData()
                    {
                        // Check for a valid username.
                        if (string.IsNullOrEmpty(UserData.Username))
                            return false;
            
                        // Check if a file name is specified.
                        if (string.IsNullOrEmpty(ConnectionString))
                            return false;
            
                        // Check if file exist on file system.
                        string file = FilePath.GetAbsolutePath(ConnectionString);
                        if (!File.Exists(file))
                            return false;
            
                        // Read the data from the specified file.
                        DataTable data = File.ReadAllText(file).ToDataTable(",", true);
                        DataRow[] user = data.Select(string.Format("Username = '{0}'", UserData.Username));
                        if (user.Length &gt; 0)
                        {
                            // User exists in the specified file.
                            UserData.IsDefined = true;
                            UserData.Password = user[0]["Password"].ToNonNullString();
            
                            for (int i = LeastPrivilegedLevel; i &gt;= int.Parse(user[0]["Level"].ToNonNullString()); i--)
                            {
                                UserData.Roles.Add(i.ToString());
                            }
                        }
            
                        return true;
                    }
            
                    public override bool Authenticate(string password)
                    {
                        // Compare password hashes to authenticate.
                        return (UserData.Password == SecurityProviderUtility.EncryptPassword(password));
                    }
                }
            }
            </code>
            Config file entries that go along with the above example:
            <code>
            <![CDATA[
            <?xml version="1.0"?>
            <configuration>
              <configSections>
                <section name="categorizedSettings" type="TVA.Configuration.CategorizedSettingsSection, TVA.Core" />
              </configSections>
              <categorizedSettings>
                <securityProvider>
                  <add name="ApplicationName" value="SEC_APP" description="Name of the application being secured as defined in the backend security datastore."
                    encrypted="false" />
                  <add name="ConnectionString" value="Security.csv" description="Connection string to be used for connection to the backend security datastore."
                    encrypted="false" />
                  <add name="ProviderType" value="CustomSecurity.FlatFileSecurityProvider, CustomSecurity"
                    description="The type to be used for enforcing security." encrypted="false" />
                  <add name="IncludedResources" value="*=*" description="Semicolon delimited list of resources to be secured along with role names."
                    encrypted="false" />
                  <add name="ExcludedResources" value="" description="Semicolon delimited list of resources to be excluded from being secured."
                    encrypted="false" />
                </securityProvider>
              </categorizedSettings>
            </configuration>
            ]]>
            </code>
            </example>
        </member>
        <member name="F:TVA.Security.SecurityProviderBase.DefaultApplicationName">
            <summary>
            Specifies the default value for the <see cref="P:TVA.Security.SecurityProviderBase.ApplicationName"/> property.
            </summary>
        </member>
        <member name="F:TVA.Security.SecurityProviderBase.DefaultConnectionString">
            <summary>
            Specifies the default value for the <see cref="P:TVA.Security.SecurityProviderBase.ConnectionString"/> property.
            </summary>
        </member>
        <member name="F:TVA.Security.SecurityProviderBase.DefaultPersistSettings">
            <summary>
            Specifies the default value for the <see cref="P:TVA.Security.SecurityProviderBase.PersistSettings"/> property.
            </summary>
        </member>
        <member name="F:TVA.Security.SecurityProviderBase.DefaultSettingsCategory">
            <summary>
            Specifies the default value for the <see cref="P:TVA.Security.SecurityProviderBase.SettingsCategory"/> property.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.#ctor(System.String)">
            <summary>
            Initializes a new instance of the security provider.
            </summary>
            <param name="username">Name that uniquely identifies the user.</param>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.Finalize">
            <summary>
            Releases the unmanaged resources before the security provider is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.Dispose">
            <summary>
            Releases all the resources used by the security provider.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.Initialize">
            <summary>
            Initializes the security provider.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.SaveSettings">
            <summary>
            Saves security provider settings to the config file if the <see cref="P:TVA.Security.SecurityProviderBase.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:TVA.Security.SecurityProviderBase.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.LoadSettings">
            <summary>
            Loads saved security provider settings from the config file if the <see cref="P:TVA.Security.SecurityProviderBase.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.Configuration.ConfigurationErrorsException"><see cref="P:TVA.Security.SecurityProviderBase.SettingsCategory"/> has a value of null or empty string.</exception>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.RefreshData">
            <summary>
            When overridden in a derived class, refreshes the <see cref="P:TVA.Security.SecurityProviderBase.UserData"/>.
            </summary>
            <returns>true if <see cref="P:TVA.Security.SecurityProviderBase.UserData"/> is refreshed, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.Authenticate(System.String)">
            <summary>
            When overridden in a derived class, authenticates the user.
            </summary>
            <param name="password">Password to be used for authentication.</param>
            <returns>true if the user is authenticated, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the security provider and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.ApplicationName">
            <summary>
            Gets or sets the name of the application being secured as defined in the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.ConnectionString">
            <summary>
            Gets or sets the connection string to be used for connection to the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.UserData">
            <summary>
            Gets the <see cref="P:TVA.Security.SecurityProviderBase.UserData"/> object containing information about the user.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.PersistSettings">
            <summary>
            Gets or sets a boolean value that indicates whether security provider settings are to be saved to the config file.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.SettingsCategory">
            <summary>
            Gets or sets the category under which security provider settings are to be saved to the config file if the <see cref="P:TVA.Security.SecurityProviderBase.PersistSettings"/> property is set to true.
            </summary>
            <exception cref="T:System.ArgumentNullException">The value being assigned is a null or empty string.</exception>
        </member>
        <member name="P:TVA.Security.SecurityProviderBase.Enabled">
            <summary>
            Gets or sets a boolean value that indicates whether the security provider is currently enabled.
            </summary>
        </member>
        <member name="M:TVA.Security.LdapSecurityProvider.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.LdapSecurityProvider"/> class.
            </summary>
            <param name="username"></param>
        </member>
        <member name="M:TVA.Security.LdapSecurityProvider.RefreshData">
            <summary>
            Refreshes the <see cref="T:TVA.Security.UserData"/>.
            </summary>
            <returns>true if <see cref="P:TVA.Security.SecurityProviderBase.UserData"/> is refreshed, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.LdapSecurityProvider.Authenticate(System.String)">
            <summary>
            Authenticates the user.
            </summary>
            <param name="password">Password to be used for authentication.</param>
            <returns>true if the user is authenticated, otherwise false.</returns>
        </member>
        <member name="P:TVA.Security.LdapSecurityProvider.WindowsPrincipal">
            <summary>
            Gets the original <see cref="P:TVA.Security.LdapSecurityProvider.WindowsPrincipal"/> of the user if the user exists in Active Directory.
            </summary>
        </member>
        <member name="M:TVA.Security.SqlSecurityProvider.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.SqlSecurityProvider"/> class.
            </summary>
            <param name="username">Name that uniquely identifies the user.</param>
        </member>
        <member name="M:TVA.Security.SqlSecurityProvider.RefreshData">
            <summary>
            Refreshes the <see cref="T:TVA.Security.UserData"/>.
            </summary>
            <returns>true if <see cref="P:TVA.Security.SecurityProviderBase.UserData"/> is refreshed, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SqlSecurityProvider.Authenticate(System.String)">
            <summary>
            Authenticates the user.
            </summary>
            <param name="password">Password to be used for authentication.</param>
            <returns>true if the user is authenticated, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SqlSecurityProvider.LogLogin(System.Boolean)">
            <summary>
            Logs user authentication attempt.
            </summary>
            <param name="loginSuccess">true if user authentication was successful, otherwise false.</param>
            <returns>true if logging was successful, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SqlSecurityProvider.LogError(System.String,System.String)">
            <summary>
            Logs information about an encountered exception to the backend datastore.
            </summary>
            <param name="source">Source of the exception.</param>
            <param name="message">Detailed description of the exception.</param>
            <returns>true if logging was successful, otherwise false.</returns>
        </member>
        <member name="T:TVA.Security.SecurityIdentity">
            <summary>
            A class that implements <see cref="T:System.Security.Principal.IIdentity"/> interface to facilitate custom role-based security.
            </summary>
            <seealso cref="T:TVA.Security.SecurityPrincipal"/>
            <seealso cref="T:TVA.Security.ISecurityProvider"/>
        </member>
        <member name="M:TVA.Security.SecurityIdentity.#ctor(TVA.Security.ISecurityProvider)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.SecurityIdentity"/> class.
            </summary>
            <param name="provider">An <see cref="T:TVA.Security.ISecurityProvider"/> of the user.</param>
            <exception cref="T:System.ArgumentNullException">Value specified for <paramref name="provider"/> is null.</exception>
        </member>
        <member name="P:TVA.Security.SecurityIdentity.AuthenticationType">
            <summary>
            Gets the type of authentication used to identify the user.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityIdentity.IsAuthenticated">
            <summary>
            Gets a boolean value that indicates whether the user has been authenticated.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityIdentity.Name">
            <summary>
            Gets the user's login name.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityIdentity.Provider">
            <summary>
            Gets the <see cref="T:TVA.Security.ISecurityProvider"/> of the user.
            </summary>
        </member>
        <member name="T:TVA.Security.SecurityProviderUtility">
            <summary>
            A helper class containing methods used in the implementation of role-based security.
            </summary>
        </member>
        <member name="F:TVA.Security.SecurityProviderUtility.StrongPasswordRegex">
            <summary>
            Regular expression used for validating the passwords of external users.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderUtility.CreateProvider(System.String)">
            <summary>
            Creates a new <see cref="T:TVA.Security.ISecurityProvider"/> based on the settings in the config file.
            </summary>
            <param name="username">Username of the user for whom the <see cref="T:TVA.Security.ISecurityProvider"/> is to be created.</param>
            <returns>An object that implements <see cref="T:TVA.Security.ISecurityProvider"/>.</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderUtility.IsResourceSecurable(System.String)">
            <summary>
            Determines if the specified <paramref name="resource"/> is to be secured based on settings in the config file.
            </summary>
            <param name="resource">Name of the resource to be checked.</param>
            <returns>true if the <paramref name="resource"/> is to be secured; otherwise false/</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderUtility.IsResourceAccessible(System.String)">
            <summary>
            Determines if the current user, as defined by the <see cref="P:System.Threading.Thread.CurrentPrincipal"/>, has permission to access 
            the specified <paramref name="resource"/> based on settings in the config file.
            </summary>
            <param name="resource">Name of the resource to be checked.</param>
            <returns>true if the current user has permission to access the <paramref name="resource"/>; otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderUtility.IsRegexMatch(System.String,System.String)">
            <summary>
            Determines if the specified <paramref name="target"/> matches the specified <paramref name="spec"/>.
            </summary>
            <param name="spec">Spec string that can include wildcards ('*'). For example, *.txt</param>
            <param name="target">Target string to be compared with the <paramref name="spec"/>.</param>
            <returns>true if the <paramref name="target"/> matches the <paramref name="spec"/>, otherwise false.</returns>
        </member>
        <member name="M:TVA.Security.SecurityProviderUtility.EncryptPassword(System.String)">
            <summary>
            Encrypts the password to a one-way hash using the SHA1 hash algorithm.
            </summary>
            <param name="password">Password to be encrypted.</param>
            <returns>Encrypted password.</returns>
        </member>
        <member name="T:TVA.Security.NamespaceDoc">
            <summary>
            Contains fundamental classes that define the security framework for role-based security.
            </summary>
        </member>
        <member name="T:TVA.Security.UserData">
            <summary>
            A serializable class that contains information about a user defined in the security datastore.
            </summary>
        </member>
        <member name="M:TVA.Security.UserData.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.UserData"/> class.
            </summary>
            <param name="username">User's logon name.</param>
        </member>
        <member name="M:TVA.Security.UserData.Initialize">
            <summary>
            Initializes this <see cref="T:TVA.Security.UserData"/> object.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.LoginID">
            <summary>
            Gets the user's login ID.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.Username">
            <summary>
            Gets the user's login name.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.Password">
            <summary>
            Gets the user's password.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.FirstName">
            <summary>
            Gets the user's first name.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.LastName">
            <summary>
            Gets the user's last name.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.CompanyName">
            <summary>
            Gets the user's company name.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.PhoneNumber">
            <summary>
            Gets the user's phone number.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.EmailAddress">
            <summary>
            Gets the user's email address.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.SecurityQuestion">
            <summary>
            Gets the user's security question.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.SecurityAnswer">
            <summary>
            Gets the user's security answer.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.PasswordChangeDataTime">
            <summary>
            Gets the date and time when user must change the password.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.AccountCreatedDateTime">
            <summary>
            Gets the date and time when user account was created.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.IsDefined">
            <summary>
            Gets a boolean value that indicates whether the user is defined in the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.IsExternal">
            <summary>
            Gets a boolean value that indicates whether the user is defined as an external user in the backend security datastore.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.IsDisabled">
            <summary>
            Gets a boolean value that indicates whether the user account has been disabled.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.IsLockedOut">
            <summary>
            Gets a boolean value that indicates whether the user account has been locked due to numerous unsuccessful login attempts.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.IsAuthenticated">
            <summary>
            Gets a boolean value indicating whether or not the user has been authenticated.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.Groups">
            <summary>
            Gets a read-only list of all the groups the user belongs to.
            </summary>
        </member>
        <member name="P:TVA.Security.UserData.Roles">
            <summary>
            Gets a read-only list of all the roles assigned to the user.
            </summary>
        </member>
        <member name="T:TVA.Security.SecurityProviderCache">
            <summary>
            A helper class that manages the caching of <see cref="T:TVA.Security.ISecurityProvider"/>s.
            </summary>
        </member>
        <member name="F:TVA.Security.SecurityProviderCache.CachingTimeout">
            <summary>
            Number of minutes upto which <see cref="T:TVA.Security.ISecurityProvider"/>s are to be cached.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderCache.CurrentProvider">
            <summary>
            Gets or sets the <see cref="T:TVA.Security.ISecurityProvider"/> of the current user.
            </summary>
        </member>
        <member name="T:TVA.Security.SecurityProviderCache.CacheContext">
            <summary>
            A class that facilitates the caching of <see cref="T:TVA.Security.ISecurityProvider"/>.
            </summary>
        </member>
        <member name="M:TVA.Security.SecurityProviderCache.CacheContext.#ctor(TVA.Security.ISecurityProvider)">
            <summary>
            Initializes a new instance of the <see cref="T:TVA.Security.SecurityProviderCache.CacheContext"/> class.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderCache.CacheContext.Provider">
            <summary>
            Gets the <see cref="T:TVA.Security.ISecurityProvider"/> managed by this <see cref="T:TVA.Security.SecurityProviderCache.CacheContext"/>.
            </summary>
        </member>
        <member name="P:TVA.Security.SecurityProviderCache.CacheContext.LastAccessed">
            <summary>
            Gets the <see cref="T:System.DateTime"/> of when the <see cref="P:TVA.Security.SecurityProviderCache.CacheContext.Provider"/> was last accessed.
            </summary>
        </member>
    </members>
</doc>
